home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Mosaic / Docs / draft-www-uri-00.txt < prev    next >
Encoding:
Text File  |  1994-09-11  |  53.7 KB  |  1,336 lines  |  [TEXT/UNIX]

  1. Universal Resource Identifiers                   Tim Berners-Lee
  2. draft-www-uri-00.{ps,txt}                                  CERN
  3. Expires 12 September 1994                         12 March 1994
  4.  
  5.  
  6.               Universal Resource Identifiers in WWW
  7.                 
  8.              A Unifying Syntax for the Expression of
  9.           Names and Addresses of Objects on the Network
  10.                    as used in the World-Wide Web
  11.  
  12.  
  13.                          ABOUT THIS DOCUMENT
  14.                                    
  15.    This document defines the syntax used by the World-Wide Web
  16.    initiative to encode the names and addresses of objects on the
  17.    Internet.  The web is considered to include objects accessed using
  18.    an extendable number of protocols, existing, invented for the web
  19.    itself, or to be invented in the future.  Access instructions for
  20.    an individual object under a given protocol are encoded into forms
  21.    of address string.  Other protocols allow the use of object names
  22.    of various forms.  In order to abstract the idea of a generic
  23.    object, the web needs the concepts of the universal set of objects,
  24.    and of the universal set of  names or addresses of objects.
  25.    
  26.    A Universal Resource Identifier (URI) is a member of this universal
  27.    set of names in registered name spaces and addresses referring to
  28.    registered protocols or name spaces.  A Uniform Resource Locator
  29.    (URL), defined elsewhere, is a form of URI which expresses an
  30.    address which maps onto an access algorithm using network
  31.    protocols. Existing URI schemes which correspond to the (still
  32.    mutating) concept of IETF URLs are listed here. The Uniform
  33.    Resource Name (URN) debate attempts to define a name space (and
  34.    presumably resolution protocols) for persistent object names. This
  35.    area is not addressed by this document, which is written in order
  36.    to document existing practice and provide a reference point for URL
  37.    and URN discussions.
  38.    
  39.    This document  is therefore to be issued under the  "informational
  40.    RFC" disclaimer .
  41.    
  42.    The world-wide web protocols are discussed on the mailing list
  43.    www-talk-request@info.cern.ch and the newsgroup
  44.    comp.infosystems.www is preferable for beginner's questions. The
  45.    mailing list uri-request@bunyip.com has discussion related
  46.    particularly to the URI issue.  The author may be contacted as
  47.    timbl@info.cern.ch.
  48.    
  49.    This document is available in hypertext form at
  50.    http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
  51.    
  52.   STATUS OF THIS MEMO
  53.   
  54.  
  55.  
  56.  
  57. Berners-Lee                                                          1
  58.  
  59.    This document is an Internet Draft. Internet Drafts are working
  60.    documents of the Internet Engineering Task Force (IETF), its Areas,
  61.    and its Working Groups.  Note that other groups may also distribute
  62.    working documents as Internet Drafts.  
  63.    
  64.    Internet Drafts are working documents valid for a maximum of six
  65.    months. Internet Drafts may be updated, replaced, or obsoleted by
  66.    other documents at any time.  It is not appropriate to use Internet
  67.    Drafts as reference material or to cite them other than as a
  68.    "working draft" or "work in progress".  
  69.    
  70.    Distribution of this document is unlimited. 
  71.    
  72.                    THE NEED FOR A UNIVERSAL SYNTAX 
  73.                                    
  74.    This section describes the concept of the URI and does not form
  75.    part of the specification.
  76.    
  77.    Many protocols and systems for document search and retrieval are
  78.    currently in use, and many more protocols or refinements of
  79.    existing protocols are to be expected in a field whose expansion is
  80.    explosive.  
  81.    
  82.    These systems are aiming to achieve global search and readership of
  83.    documents across differing computing platforms, and despite a
  84.    plethora of protocols and data formats.   As protocols evolve,
  85.    gateways can allow global access to remain possible. As data
  86.    formats evolve, format conversion programs can preserve global
  87.    access. There is one area, however, in which it is impractical to
  88.    make conversions, and that is in the names and addresses used to
  89.    identify objects.  This is because names and addresses of objects
  90.    are passed on in so many ways, from the backs of envelopes to
  91.    hypertext objects, and may have a long life.
  92.    
  93.    A common feature of almost all the data models of past and proposed
  94.    systems is something which can be mapped onto a concept of "object"
  95.    and some kind of name, address, or identifier for that object.  One
  96.    can therefore define a set of name spaces in which these objects
  97.    can be said to exist.
  98.    
  99.    Practical systems need to access and mix objects which are part of
  100.    different existing and proposed systems. Therefore, the concept of
  101.    the universal set of all objects, and hence the universal set of
  102.    names and addresses, in all name spaces, becomes important. This
  103.    allows names in different spaces to be treated in a common way,
  104.    even though names in different spaces have differing
  105.    characteristics, as do the objects to which they refer. 
  106.    
  107. URIs
  108.  
  109.    This document defines a way to encapsulate a name in any registered
  110.    name space, and label it with the the name space, producing a
  111.    member of the universal set.  Such an encoded and labelled member
  112.  
  113.  
  114.  
  115. Berners-Lee                                                          2
  116.  
  117.    of this set is known as a Universal Resource Identifier, or URI.
  118.    
  119.    The universal syntax allows access of objects available using
  120.    existing protocols, and may be extended with technology. 
  121.    
  122.    The specification of the URI syntax does not imply anything about
  123.    the properties of names and addresses in the various name spaces
  124.    which are mapped onto the set of URI strings.  The properties
  125.    follow from the specifications of the protocols and the associated
  126.    usage conventions for each scheme. 
  127.    
  128. URLs
  129.  
  130.    For existing Internet access protocols, it is necessary in most
  131.    cases to define the encoding of the access algorithm into something
  132.    concise enough to be termed address.  URIs which refer to objects
  133.    accessed with existing protocols are known as "Uniform Resource
  134.    Locators" (URLs) and are listed here as used in WWW, but to be
  135.    formally defined  in a separate document . 
  136.    
  137. URNs
  138.  
  139.    There is currently a drive to define a space of more persistent
  140.    names than any URLs.  These "Uniform Resource Names" are the
  141.    subject of an IETF working group's discussions.  (See Sollins and
  142.    Masinter, Functional Specifications for URNs, circulated
  143.    informally.)
  144.    
  145.    The URI syntax and URL forms have been in widespread use by
  146.    World-Wide Web software since 1990.
  147.    
  148.                      DESIGN CRITERIA AND CHOICES
  149.                                    
  150.    This section is not part of the specification: it is simply an
  151.    explanation of the way in which the specification was derived. 
  152.    
  153. Design criteria
  154.  
  155.    The syntax was designed to be 
  156.    
  157.   Extensible              New naming schemes may be added later. 
  158.                          
  159.   Complete                It is possible to encode any naming scheme. 
  160.                          
  161.   Printable               It is possible to express any URI using
  162.                          7-bit ASCII characters so that  URIs may if
  163.                          necessary be passed using pen and ink. 
  164.                          
  165. Choices for a universal syntax 
  166.  
  167.    For the syntax itself there is little choice except for the order
  168.    and punctuation of the elements, and the acceptable characters and
  169.    escaping rules.
  170.  
  171.  
  172.  
  173. Berners-Lee                                                          3
  174.  
  175.    The extensibility requirement is met by allowing an arbitrary (but
  176.    registered) string to be used as a prefix.  A prefix is chosen as
  177.    left to right parsing is more common than right to left.   The
  178.    choice of a colon as separator of the prefix from the rest of the
  179.    URI was arbitrary.
  180.    
  181.    The decoding of the rest of the string is defined as a function of
  182.    the prefix. New prefixed are introduced for new schemes as
  183.    necessary, in agreement with the registration authority. The
  184.    registration of a new scheme clearly requires the definition of the
  185.    decoding of the URI into a given name space, and a definition of
  186.    the properties and, where applicable, resolution protocols, for the
  187.    name space.
  188.    
  189.    The completeness requirement is easily met by allowing particularly
  190.    strange or plain binary names to be encoded in base 16 or 64 using
  191.    the acceptable characters.  
  192.    
  193.    The printability requirement could have been met by requiring all
  194.    schemes to encode characters not part of a basic set.   This led to
  195.    many discussions of what the basic set should be. A difficult case,
  196.    for example, is when an ISO latin 1 string appears in a URL, and
  197.    within an application with ISO Latin-1 capability, it can be
  198.    handled intact.  However, for transport in general, the non-ASCII
  199.    characters need to be escaped.
  200.    
  201.    The solution to this was to specify a safe set of characters, and a
  202.    general escaping scheme which may be used for encoding "unsafe"
  203.    characters. This "safe" set is suitable, for example, for use in
  204.    electronic mail.  This is the canonical form of a URI. 
  205.    
  206.    The choice of escape character for introducing representations of
  207.    non-allowed characters also tends to be a matter of taste. An ANSI
  208.    standard exists in the C language, using the back-slash character
  209.    "\". The use of this character on unix command lines, however, can
  210.    be a problem as it is interpreted by many shell programs, and would
  211.    have itself to be escaped.   It is also a character which is not
  212.    available on certain keyboards.  The equals sign is commonly used
  213.    in the encoding of names having attribute=value pairs. The percent
  214.    sign was eventually chosen as a suitable escape character.
  215.    
  216.    There is a conflict between the need to be able to represent many
  217.    characters including spaces within a URI directly, and the need to
  218.    be able to use a URI in environments which have limited character
  219.    sets or in which certain characters are prone to corruption. This
  220.    conflict has been resolved by use of an hexadecimal escaping method
  221.    which may be applied to any characters forbidden in a given
  222.    context. When URLs are moved between contexts, the set of
  223.    characters escaped may be enlarged or reduced unambiguously.
  224.    
  225.    The use of white space characters is risky  in URIs to be printed
  226.    or sent by electronic mail, and the use of multiple white space
  227.    characters is very risky.  This is because of the frequent
  228.  
  229.  
  230.  
  231. Berners-Lee                                                          4
  232.  
  233.    introduction of extraneous white space when lines are wrapped by
  234.    systems such as mail, or sheer necessity of narrow column width,
  235.    and because of the  inter-conversion of various forms of white
  236.    space which occurs during character code conversion and the
  237.    transfer of text between applications.  This is why the canonical
  238.    form for URIs has all white spaces encoded. 
  239.    
  240.                            RECOMMENDATIONS
  241.                                    
  242.    This section describes the syntax for URIs as used in the WorldWide
  243.    Web initiative.  The generic syntax provides a framework for new
  244.    schemes for names to be resolved using as yet undefined protocols. 
  245.     
  246.    
  247. URI syntax  
  248.  
  249.    A complete URI consists of a naming scheme specifier followed by a
  250.    string whose format is a function of the naming scheme. For
  251.    locators of information on the Internet, a common syntax is used
  252.    for the  IP address part. A BNF description of the URL syntax is
  253.    given in an a later section. The components are as follows. 
  254.    Fragment identifiers and relative URIs are not involved in the
  255.    basic URL definition. 
  256.    
  257.   SCHEME  
  258.   
  259.    Within the URI of a object, the first element is the name of the
  260.    scheme, separated from the rest of the object by a colon.  
  261.    
  262.   PATH
  263.   
  264.    The rest of the URI follows the colon in a format depending on the
  265.    scheme. The path is interpreted in a manner dependent on the
  266.    protocol being used. However, when it contains slashes, these must
  267.    imply a hierarchical structure. 
  268.    
  269. Reserved characters
  270.  
  271.    The path in the URI has a significance defined by the particular
  272.    scheme. Typically it is used to encode a name in a given name
  273.    space, or an algorithm for accessing an object. In either case, the
  274.    encoding may use those characters allowed by the BNF syntax, or
  275.    hexadecimal encoding of other characters.
  276.    
  277.    Some of the reserved characters have special uses as defined here. 
  278.    
  279.   THE PERCENT SIGN
  280.   
  281.    The percent sign ("%", ASCII 25 hex) is used as the escape
  282.    character in the encoding scheme and is never allowed for anything
  283.    else. 
  284.    
  285.   HIERARCHICAL FORMS
  286.  
  287.  
  288.  
  289. Berners-Lee                                                          5
  290.  
  291.    The slash ("/", ASCII 2F hex) character is reserved for the
  292.    delimiting of substrings whose relationship is hierarchical.  This
  293.    enables partial forms of the URI.   Substrings consisting of single
  294.    or double dots ("." or "..") are similarly reserved. 
  295.    
  296.    The significance of the slash between two segments is that the
  297.    segment of the path to the left is more significant than the
  298.    segment of the path to the right.  ("Significance" in this case
  299.    refers solely to closeness to the root of the hierarchical
  300.    structure and makes no value judgement!) 
  301.    
  302.     Note
  303.     
  304.    The similarity to unix and other disk operating system filename
  305.    conventions should be taken as purely coincidental, and should not
  306.    be taken to indicate that URIs should be interpreted as file names.
  307.    
  308.   HASH FOR FRAGMENT IDENTIFIERS
  309.   
  310.    The hash ("#", ASCII 23 hex) character is reserved as a delimiter
  311.    to separate the URI of an object from a fragment identifier . 
  312.    
  313.   QUERY STRINGS
  314.   
  315.    The question mark ("?", ASCII 3F hex)  is used to delimit the
  316.    boundary between the URI of a queryable object, and a set of words
  317.    used to express a query on that object.  When this form is used,
  318.    the combined URI stands for the object which results from the query
  319.    being applied to the original object.
  320.    
  321.    Within the query string, the plus sign is reserved as shorthand
  322.    notation for a space.  Therefore, real plus signs must be encoded. 
  323.     This method was used to make query URIs easier to pass in systems
  324.    which did not allow spaces.
  325.    
  326.    The query string represents some operation applied to the object,
  327.    but this specification gives no common syntax or semantics for it. 
  328.    In practice the syntax and sematics may depend on the scheme and
  329.    may even on the base URI. 
  330.    
  331.   UNSAFE CHARACTERS
  332.   
  333.    The URI specification specifies that in canonical form, certain
  334.    characters such as spaces, control characters, and some characters
  335.    whose ASCII code is used differently in different national
  336.    character variant 7 bit sets, are not used unencoded. This is a
  337.    recommendation for trouble-free interchange, and as indicated
  338.    below, the safe set may be under certain circumstances extended or
  339.    reduced. 
  340.    
  341. Encoding reserved characters
  342.  
  343.    When a system uses a local addressing scheme, it is useful to
  344.  
  345.  
  346.  
  347. Berners-Lee                                                          6
  348.  
  349.    provide a mapping from local addresses into URIs so that references
  350.    to objects within the addressing scheme may be referred to
  351.    globally, and possibly accessed through gateway servers.
  352.    
  353.    For a new naming scheme, any mapping scheme may be defined provided
  354.    it is unambiguous, reversible, and provides valid URIs. It is
  355.    recommended that where hierarchical aspects to the local naming
  356.    scheme exist, they be mapped onto the hierarchical URL path syntax
  357.    in order to allow the partial form to be used. 
  358.    
  359.      It is also recommended that the conventional scheme below be used
  360.    in all cases except for any scheme which encodes binary data as
  361.    opposed to text, in which case a more compact encoding such as pure
  362.    hexadecimal or base 64 might be more appropriate. For example, the
  363.    conventional URI encoding method is used for mapping WAIS, FTP,
  364.    Prospero and Gopher addresses in the URI specification. 
  365.    
  366.   CONVENTIONAL URI ENCODING SCHEME
  367.   
  368.    Where the local naming scheme uses ASCII characters which are not
  369.    allowed in the URI,  these may be represented in the URL by a
  370.    percent sign "%" immediately followed by two hexadecimal digits
  371.    (0-9, A-F) giving the ISO Latin 1 code for that character.
  372.    Character codes other than those allowed by the syntax shall not be
  373.    used unencoded in a URI.  
  374.    
  375.   REDUCED OR INCREASED SAFE CHARACTER SETS
  376.   
  377.    The same encoding method may be used for encoding characters whose
  378.    use, although technically allowed in a URI, would be unwise due to
  379.    problems of corruption by imperfect gateways or misrepresentation
  380.    due to the use of variant character sets, or which would simply be
  381.    awkward in a given environment.  Because a % sign always indicates
  382.    an encoded character, a URI may be made "safer" simply by encoding
  383.    any characters considered unsafe, while leaving already encoded
  384.    characters still encoded.  Similarly, in cases where a larger set
  385.    of characters is acceptable, % signs can be selectively and
  386.    reversibly expanded.
  387.    
  388.    Before two URIs can be compared, it is therefore necessary to bring
  389.    them to the same encoding level.
  390.    
  391.    However, the reserved characters mentioned above have a quite
  392.    different significance when encoded, and so may NEVER be encoded
  393.    and unencoded in this way.  
  394.    
  395.    The percent sign intended as such must always be encoded, as its
  396.    presence otherwise always indicates an encoding. Sequences which
  397.    start with a percent sign but are not followed by two hexadecimal
  398.    characters are reserved for future extension. (see example 3 ) 
  399.    
  400.     Example 1
  401.     
  402.  
  403.  
  404.  
  405. Berners-Lee                                                          7
  406.  
  407.    The URIs  
  408.    
  409.                 http://info.cern.ch/albert/bertram/marie-claude
  410.  
  411.    and  
  412.    
  413.                 http://info.cern.ch/albert/bertram/marie%2Dclaude 
  414.  
  415.    are identical, as the %2D encodes a hyphen character. 
  416.    
  417.     Example 2
  418.     
  419.    The URIs 
  420.    
  421.                 http://info.cern.ch/albert/bertram/marie-claude
  422.  
  423.    and 
  424.    
  425.                 http://info.cern.ch/albert/bertram%2Fmarie-claude
  426.  
  427.    are NOT identical, as in the second case the encoded slash does not
  428.    have hierarchical significance. 
  429.    
  430.     Example 3
  431.     
  432.    The URIs 
  433.    
  434.                 fxqn:/us/va/reston/cnri/ietf/24/asdf%*.fred
  435.  
  436.    and 
  437.    
  438.                 news:12345667123%asdghfh@info.cern.ch
  439.  
  440.    are illegal, as all % characters imply encodings, and there is no
  441.    decoding defined for "%*"  or "%as" in this recommendation.
  442.    
  443. Partial (relative) form  
  444.  
  445.    Within a object whose URI is well defined, the URI of another
  446.    object may be given in abbreviated form, where parts of the two
  447.    URIs are the same. This allows objects within a group to refer to
  448.    each other without requiring the space for a complete reference,
  449.    and it incidentally allows the group of objects  to be moved
  450.    without changing any references. This is not discussed in detail
  451.    here, it is only mentioned so that the characters required by the
  452.    technique be reserved for that purpose.  It must be emphasized that
  453.    when a reference is passed in anything other than a well controlled
  454.    context, the full form must always be used.  
  455.    
  456.    In the World-Wide Web applications, the context URI is that of the
  457.    document or object containing a reference.  In this case partial
  458.    URIs can be generated in virtual objects or stored in real objects,
  459.    without the need for dramatic change if the higher-order parts of a
  460.  
  461.  
  462.  
  463. Berners-Lee                                                          8
  464.  
  465.    hierarchical naming system are modified.   Apart from terseness,
  466.    this gives greater robustness to practical systems,  by enabling
  467.    information hiding between system components.
  468.    
  469.    The partial form relies on a property of the URI syntax that
  470.    certain characters ("/") and certain path elements ("..", ".") have
  471.    a significance reserved for representing a hierarchical space, and
  472.    must be recognized as such by both clients and servers.  
  473.    
  474.    A partial form can be distinguished from an absolute form in that
  475.    the latter must have a colon and that colon must occur before any
  476.    slash characters. Systems not requiring partial forms should not
  477.    use any unencoded slashes in their naming schemes.
  478.    
  479.    The rules for the use of a partial name relative to the URI of  the
  480.    context are:   
  481.    
  482.       If the scheme parts  are different, the whole absolute URI must
  483.       be given. Otherwise, the scheme is omitted, and: 
  484.       
  485.       If the partial URI starts with a non-zero number of consecutive
  486.       slashes, then everything from the context URI up to (but not
  487.       including) the first occurrence of exactly the same number of
  488.       consecutive slashes is taken to be the same and so prepended to
  489.       the partial URL to form the full URL. Otherwise: 
  490.       
  491.       The last part of the path of the context URI (anything following
  492.       the rightmost slash) is removed, and the given partial URI
  493.       appended in its place, and then: 
  494.       
  495.       Within the result,  all occurrences of "xxx/../"  or "/." are
  496.       recursively removed, where xxx, ".." and "." are complete path
  497.       elements. 
  498.       
  499.       Note
  500.       
  501.    If a path of the context locator ends in slash, partial URIs are
  502.    treated differently to the URI with the same path but without a
  503.    trailing slash.   The trailing slash indicates a void segment of
  504.    the path. 
  505.    
  506.     Examples
  507.     
  508.    In the context of URI 
  509.    
  510.                         magic://a/b/c//d/e/f
  511.  
  512.    the partial URIs would expand as follows: 
  513.    
  514.   g                       magic://a/b/c//d/e/g 
  515.                          
  516.   /g                      magic://a/g 
  517.                          
  518.  
  519.  
  520.  
  521. Berners-Lee                                                          9
  522.  
  523.   //g                     magic://g 
  524.                          
  525.   ../g                    magic://a/b/c//d/g 
  526.                          
  527.   g:a                     g:a 
  528.                          
  529.    and in the context of the URI 
  530.    
  531.                         magic://a/b/c//d/e/
  532.  
  533.    the results would be exactly the same.
  534.    
  535. Fragment-id  
  536.  
  537.    This represents a part of, fragment of, or a sub-function within,
  538.    an object . Its syntax and semantics are defined by the application
  539.    responsible for the object, or the specification of the content
  540.    type of the object. The only definition here is of the allowed
  541.    characters by which it may be represented in a URL. 
  542.    
  543.    Specific syntaxes for representing fragments in text documents by
  544.    line and character range, or in graphics by coordinates, or in
  545.    structured documents using ladders, are suitable for
  546.    standardization but not defined here. 
  547.    
  548.    The fragment-id follows the URL of the whole object from which it
  549.    is separated by a hash sign (#).  If the fragment-id is void, the
  550.    hash sign may be omitted: A void fragment-id with or without the
  551.    hash sign means that the URL refers to the whole object.
  552.    
  553.    While this hook is allowed for identification of fragments, the
  554.    question of addressing of parts of objects, or of the grouping of
  555.    objects and relationship between continued and containing objects,
  556.    is not addressed by this document.
  557.    
  558.    Fragment identifiers do NOT address the question of objects which
  559.    are different versions of a "living" object, nor of expressing the
  560.    relationships between different versions and the living object.
  561.    
  562.    There is no implication that a fragment identifier refers to
  563.    anything which can be extracted as an object in its own right.  It
  564.    may, for example, refer to an indivisible point within an object.
  565.    
  566.                           SPECIFIC SCHEMES  
  567.                                    
  568.    The mapping for URIs onto some existing standard and experimental
  569.    protocols is outlined in the BNF syntax definition .  Notes on
  570.    particular protocols follow.   These URIs are frequently referred
  571.    to as URLs, though the exact definition of the term URL is still
  572.    under discussion (March 1993). The schemes covered are: 
  573.    
  574.   http                    Hypertext Transfer Protocol 
  575.                          
  576.  
  577.  
  578.  
  579. Berners-Lee                                                          10
  580.  
  581.   ftp                     File Transfer protocol 
  582.                          
  583.   gopher                 Gopher protocol 
  584.                          
  585.   mailto                  Electronic mail address 
  586.                          
  587.   news                    Usenet news 
  588.                          
  589.   telnet , rlogin and tn3270 
  590.                           Reference to interactive sessions 
  591.                          
  592.   wais                    Wide Area Information Servers 
  593.                          
  594.    The following schemes are proposed as essential to the unification
  595.    of the web with electronic mail, but not currently (to the author's
  596.    knowledge) implemented: 
  597.    
  598.   mid                     Message identifiers for electronic mail 
  599.                          
  600.   cid                     Content identifiers for MIME body part  
  601.                          
  602.    The schemes for x.500, network management database, and whois++
  603.    have not been specified and may be the subject of further study. 
  604.    Schemes for Prospero , and  restricted NNTP use are not currently
  605.    implemented as far as the author is aware.
  606.    
  607.    The "urn" prefix is reserved for use in encoding a Uniform Resource
  608.    Name when that has been developed by the IETF working group.
  609.    
  610.    New schemes may be registered at a later time.
  611.    
  612. HTTP  
  613.  
  614.    The HTTP protocol specifies that the path is handled transparently
  615.    by those who handle URLs, except for the servers which de-reference
  616.    them.   The path is passed by the client to the server with any
  617.    request, but is not otherwise understood by the client.  The
  618.    fragmentid part is not sent with the request.  The search part, if
  619.    present, is sent. Spaces and control characters in URLs must be
  620.    escaped for transmission in HTTP.
  621.    
  622. FTP  
  623.  
  624.    The ftp: prefix indicates a file which is to be picked up from the
  625.    file system of the given host. The FTP protocol is used, as defined
  626.    in RFC957 or any successor. The port number, if present, gives the
  627.    port of the FTP server if not the FTP default. (A client may in
  628.    practice use local file access to retrieve objects which are
  629.    available though more efficient means such as local file open or
  630.    NFS mounting, where this is available and equivalent). 
  631.    
  632.     The syntax allows for the inclusion of a user name and even a
  633.    password for those systems which do not use the anonymous FTP
  634.  
  635.  
  636.  
  637. Berners-Lee                                                          11
  638.  
  639.    convention. The default, however, if no user or password is
  640.    supplied, will be to use that convention, viz. that the user name
  641.    is "anonymous" and the password the user's Internet-style mail
  642.    address.
  643.    
  644.    The FTP protocol allows for a sequence of CWD commands (change
  645.    working directory) prior to a RETR (retrieve) which actually
  646.    accesses a file.  The arguments of any CWD commands are successive
  647.    segment parts of the URL, and the filename argument to the RETR
  648.    command is the final segment of the URL path. 
  649.    
  650.       Note
  651.       
  652.    In the case in which the file system of the server is known or
  653.    guessed by the client, the path may possibly converted into a
  654.    filename.  This may (in some cases)  allow the file to be retrieved
  655.    in one RETR command with no CWD command. In the case of unix, the
  656.    filename will in fact look the same as the URI path.  This must NOT
  657.    be taken to indicate that the URL is a unix filename.   In
  658.    practice, as many FTP servers in fact have or emulate unix file
  659.    systems, it may in fact be time-efficient to attempt first a direct
  660.    retrieval guessing unix syntax, and, if that fails, to attempt the
  661.    official sequence of succession of directory changes followed by a
  662.    RETR command.
  663.    
  664.    There is no common hierarchical model to the FTP protocol, so if a
  665.    directory change command has been given, it is impossible in
  666.    general to deduce what sequence should be given to navigate to
  667.    another directory for a second retrieval, if the paths are
  668.    different.  The only reliable algorithm is to disconnect and
  669.    reestablish the control connection.  However, if no directory
  670.    changes have been made, but direct retrieval has been done, then
  671.    the control connection may be kept.  Another possible
  672.    uninvestigated method is to use CDUP on the trial assumption of a
  673.    hierarchical structure to return a point in common between the
  674.    first and second URLs.
  675.    
  676.    (This note previously read:  "The adoption of a unix-style syntax
  677.    involves the conversion into non-unix local forms by either the
  678.    client or server. Some non-unix servers do this, but clients
  679.    wishing to access sites which do not have unix-style naming will
  680.    need certain algorithms to enable other file systems to be
  681.    identified and treated.  Client software may also have to be
  682.    flexible in terms of the sequence of FTP commands used with
  683.    different varieties of server. In view of a tendency for file
  684.    systems to look increasingly similar, it was felt that the URL
  685.    convention should not be weighed down by extra mechanisms for
  686.    identifying these cases." ) 
  687.    
  688.       Note
  689.       
  690.    The data format of a file can only, in the general FTP case, be
  691.    deduced from the name, normally the suffix of the name. This is not
  692.  
  693.  
  694.  
  695. Berners-Lee                                                          12
  696.  
  697.    standardized. An alternative is for it to be transferred in
  698.    information outside the URL. The transfer mode (binary or text)
  699.    must in turn be deduced from the data format.  It is recommended
  700.    that conventions for suffixes of public archives be established,
  701.    but it is outside the scope of this paper.
  702.    
  703. Gopher  
  704.  
  705.    The first character of the URL path (after the initial single
  706.    slash) is a single-character "type" field which is that used by the
  707.    Gopher protocol.  The rest of the path is the "selector string",
  708.    with disallowed characters encoded. Note that some selector strings
  709.    begin with a copy of the gopher type character, in which case that
  710.    character will occur twice consecutively in the URL. If the type
  711.    character and selector are omitted, the type defaults to "1".
  712.    Gopher links which refer to non-Gopher protocols are represented
  713.    directly as URLs of the underlying access method and are not
  714.    represented as Gopher URLs.
  715.    
  716.    [Whether extensions are required, and if so what, for Gopher+ is
  717.    under discussion, and a new draft exists..  - tbl 3/93]
  718.    
  719. Mailto
  720.  
  721.    This allows a URL to specify an RFC822 addr-spec mail address. 
  722.    Note that use of % , for example as used in forming a gatewayed
  723.    mail address, requires conversion to %25 in a URL.
  724.    
  725.    This semantics may be considered to be that the object referred to
  726.    by the mailto: URL is the set of messages sent to or from that
  727.    address. There is no algorithm to retrieve this set, but the SMTP
  728.    protocol allows messages to be added to it, and any given user may
  729.    be aware of a subset of its members.
  730.    
  731. News
  732.  
  733.    The news locators refer to either news group names or article
  734.    message identifiers which must conform to the rules of RFC 850.  A
  735.    message identifier may be distinguished from a news group name by
  736.    the presence of the commercial at "@" character. These rules imply
  737.    that within an article, a reference to a news group or to another
  738.    article will be a valid URL (in the partial form). 
  739.    
  740.    A news URL may be dereferenced using NNTP  (The ARTICLE by
  741.    message-id command)or using any other protocol for the conveyance
  742.    of usenet news articles, or by reference to a body of news articles
  743.    already received. 
  744.    
  745.     Note1: 
  746.     
  747.    Among URLs the "news" URLs are anomalous in that they are
  748.    location-independent. They are unsuitable as URN candidates because
  749.    the NNTP architecture relies on the expiry of articles and
  750.  
  751.  
  752.  
  753. Berners-Lee                                                          13
  754.  
  755.    therefore a small number of articles being available at any time. 
  756.    When a news: URL is quoted, the assumption is that the reader will
  757.    fetch the article or group from his or her local news host.  News
  758.    host names are NOT part of news URLs. 
  759.    
  760.     Note 2:
  761.     
  762.    An outstanding problem is that the message identifier is
  763.    insufficient to allow the retrieval of an expired article, as no
  764.    algorithm exists for deriving an archive site and file name. The
  765.    addition of the date and news group set to the article's URL would
  766.    allow this if a directory existed of archive sites by news group.
  767.    Suggested subject of study in conjunction with NNTP working group. 
  768.    Further extension possible may be to allow the naming of subject
  769.    threads as addressable objects.
  770.    
  771.   NNTP
  772.   
  773.    This is an alternative form of reference for news articles,
  774.    specifically to be used with NNTP servers, and particularly those
  775.    incomplete server implementations which do not allow retrieval by
  776.    message identifier.  In all other cases the "news" scheme should be
  777.    used.
  778.    
  779.    The news server name, newsgroup name, and index number of an
  780.    article within the newsgroup on that particular server are given.  
  781.    The NNTP protocol must be used. 
  782.    
  783.     Note1.
  784.     
  785.    This form of URL is not of global accessability, as typically NNTP
  786.    servers only allow access from local clients.   Note that the
  787.    article numbers within groups vary from server to server.
  788.    
  789.    This form or URL should not be quoted outside this local area.  It
  790.    should not be used within news articles for wider circulation than
  791.    the one server.  This is a local identifier for a resource which is
  792.    often available globally, and so is not recommended except in the
  793.    case in which incomplete NNTP implementations on the local server
  794.    force its adoption.
  795.    
  796. Telnet, rlogin, tn3270  
  797.  
  798.    The use of URLs to represent interactive sessions is a convenient
  799.    extension to their uses for objects.  This allows access to
  800.    information systems which only provide an interactive service, and
  801.    no information server. As information within the service cannot be
  802.    addressed individually or, in general, automatically retrieved,
  803.    this is a less desirable, though currently common, solution.
  804.    
  805. URN
  806.  
  807.    The "Universal Resource Name" is currently (March 1993) under
  808.  
  809.  
  810.  
  811. Berners-Lee                                                          14
  812.  
  813.    development in the IETF.   A requirements specification is in
  814.    preparation. It currently looks as though it will be a short string
  815.    suitable for encoding in URI syntax, for which case the "urn:"
  816.    prefix is reserved.  The URN shall be encoded precisely as defined
  817.    in the (future) URN standard, except in that: 
  818.    
  819.       If the official description of the URN syntax includes any
  820.       constant wrapper characters, then they shall not be omitted from
  821.       the URI encoding of the URN; 
  822.       
  823.       If the URN has a hierarchical nature, then the slash delimiter
  824.       shall be used in the URI encoding; 
  825.       
  826.       If the URN has a hierarchical nature, the most significant part
  827.       shall be encoded on the left in the URI encoding; 
  828.       
  829.       Any characters with reserved meanings in the URI syntax shall be
  830.       escape encoded 
  831.       
  832.    These rules of course apply to any URI scheme.  It is of course
  833.    possible that the URN syntax will be chosen such that the URI
  834.    encoding will be a 1-1 transcription.
  835.    
  836.    An example might be a name such as 
  837.    
  838.                         urn:/iana/dns/ch/cern/cn/techdoc/94/1642-3
  839.  
  840.    but the reader should refer to the latest URN drafts or
  841.    specifications.
  842.    
  843. WAIS  
  844.  
  845.    The current WAIS implementation public domain requires that a
  846.    client know the "type" of a object prior to retrieval. This value
  847.    is returned along with the internal object identifier in the search
  848.    response. It has been encoded into the path part of the URL in
  849.    order to make the URL sufficient for the retrieval of the object.
  850.    Within the WAIS world, names do not of course need to be prefixed
  851.    by "wais:"  (by the partial form rules).
  852.    
  853. Message-Id
  854.  
  855.    For systems which include information transferred using mail
  856.    protocols, there is a need to be able to make cross-references
  857.    between different items of information, even though, by the nature
  858.    of mail, those items are only available to a restricted set of
  859.    people.
  860.    
  861.    Two schemes are defined.  The first, "mid:", refers to the RFC822
  862.    Message-Id of a mail message.  This Identifier is already used in
  863.    RFC822 in for example the References and In-Reply-to field .    The
  864.    rest of the URL after the "mid:"  is the RFC822 msg-id with the
  865.    constant <> wrapper removed, leaving an identifier whose format in
  866.  
  867.  
  868.  
  869. Berners-Lee                                                          15
  870.  
  871.    fact happens to be the same as addr-spec format for mailboxes
  872.    (though the semantics are different).
  873.    
  874.    The use of a "mid" URL implies access to a body of mail already
  875.    received. If a message has been distributed using NNTP or other
  876.    usenet protocols over the news system, then the "news:" form should
  877.    be used.
  878.    
  879. Content-Id
  880.  
  881.    The second scheme, "cid:", is similar to "mid:" , but makes
  882.    reference to a body part of a MIME message by the value of its
  883.    content-id field. This allows, for example, a master document being
  884.    the first part of a multipart/related MIME message to refer to
  885.    component parts which are transferred in the same message. 
  886.    
  887.     Note
  888.     
  889.    Beware however, that content identifiers are only required to be
  890.    unique within the context of a given MIME message, and so the cid:
  891.    URL is only meaningful with the context the same MIME message. For
  892.    a reference outside the message, it would need to be appended to
  893.    the message-id of the whole message. A syntax for this has not been
  894.    defined.
  895.    
  896. Prospero  
  897.  
  898.    The Prospero (Neuman, 1991) directory service is used to resolve
  899.    the URL yielding an access method for the object (which can then
  900.    itself be represented as a URL if translated). The host part
  901.    contains a host name or internet address.  The port part is
  902.    optional.  
  903.    
  904.    The path part contains a host specific object name and an optional
  905.    version number. If present, the version number is separated from
  906.    the  host specific object name by the characters "%00" (percent
  907.    zero zero), this being an escaped string terminator (null).
  908.    External Prospero links are represented as URLs of the underlying
  909.    access method and are not represented as Prospero URLs.
  910.    
  911. Schemes for Further Study
  912.  
  913.   X500  
  914.   
  915.    The mapping of x500 names onto URLs is not defined here. A decision
  916.    is required as to whether "distinguished names" or "user friendly
  917.    names" (ufn), or both, should be allowed. If any punctuation
  918.    conversions are needed from the adopted x500 representation (such
  919.    as the use of slashes between parts of a ufn) they must be defined.
  920.    This is a subject for study. 
  921.    
  922.   WHOIS  
  923.   
  924.  
  925.  
  926.  
  927. Berners-Lee                                                          16
  928.  
  929.    This prefix describes the access using the "whois++" scheme in the
  930.    process of definition. The host name part is the same as for other
  931.    IP based schemes. The path part can be either a whois handle for a
  932.    whois object, or it can be a valid whois query string. This is a
  933.    subject for further study. 
  934.    
  935.   NETWORK MANAGEMENT DATABASE  
  936.   
  937.    This is a subject for study.
  938.    
  939. Registration of naming schemes  
  940.  
  941.    A new naming scheme may be introduced by defining a mapping onto a
  942.    conforming URL syntax, using a new prefix. Experimental prefixes
  943.    may be used by mutual agreement between parties, and must start
  944.    with the characters "x-".  The scheme name "urn:" is reserved for
  945.    the work in progress on a scheme for more persistent names.  
  946.    
  947.    It is proposed that the Internet Assigned Numbers Authority (IANA)
  948.    perform the function of registration of new schemes. Any submission
  949.    of a new URI scheme must include a definition of an algorithm for
  950.    the retrieval of any object within that scheme. The algorithm must
  951.    take  the URI and produce either a set of URL(s) which will lead to
  952.    the desired object, or the object itself, in a well-defined or
  953.    determinable format.
  954.    
  955.    It is recommended that those proposing a new scheme demonstrate its
  956.    utility and operability by the provision of a gateway which will
  957.    provide images of objects in the new scheme for clients using an
  958.    existing protocol. If the new scheme is not a locator scheme, then
  959.    the properties of names in the new space should be clearly defined.
  960.     It is likewise recommended that, where a protocol allows for
  961.    retrieval by URL, that the client software have provision for being
  962.    configured to use specific gateway locators for indirect access
  963.    through new naming schemes.
  964.    
  965.                       BNF OF GENERIC URI SYNTAX
  966.                                    
  967.    This is a BNF-like description of the URI syntax. at the level at
  968.    which specific schemes are not considered.
  969.    
  970.    A vertical  line "|"  indicates alternatives, and [brackets] 
  971.    indicate optional parts.  Spaces are represented by the word
  972.    "space", and the vertical line character by "vline".   Single
  973.    letters stand for single letters. All words of more than one letter
  974.    below are entities described somewhere in this description.  
  975.    
  976.    The "generic" production gives a higher level parsing of the same
  977.    URIs as the other productions.  The "national" and "punctuation"
  978.    characters do not appear in any productions and therefore may not
  979.    appear in URIs. 
  980.    
  981.   fragmentaddress         uri [ # fragmentid ]   
  982.  
  983.  
  984.  
  985. Berners-Lee                                                          17
  986.  
  987.   uri                     scheme :  path [ ? search ]  
  988.                          
  989.   scheme                  ialpha   
  990.                          
  991.   path                    void |  xpalphas  [  / path ]   
  992.                          
  993.   search                  xalphas [ + search ]   
  994.                          
  995.   fragmentid              xalphas   
  996.                          
  997.   xalpha                  alpha | digit | safe | extra | escape   
  998.                          
  999.   xalphas                 xalpha [ xalphas ]   
  1000.                          
  1001.   xpalpha                 xalpha | +   
  1002.                          
  1003.   xpalphas                xpalpha [ xpalpha ]   
  1004.                          
  1005.   ialpha                  alpha [ xalphas ] 
  1006.                          
  1007.   alpha                   a | b | c | d | e | f | g | h | i | j | k |
  1008.                          l | m | n | o  | p | q | r | s | t | u | v |
  1009.                          w | x | y | z | A | B | C  | D | E | F | G |
  1010.                          H | I | J | K | L | M | N | O | P |  Q | R |
  1011.                          S | T | U | V | W | X | Y | Z   
  1012.                          
  1013.   digit                   0 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9   
  1014.                          
  1015.   safe                    $ | - | _ | @ | . | & | - 
  1016.                          
  1017.   extra                   ! | * | " |  ' | ( | ) | : | ; | , | space  
  1018.                          
  1019.   escape                  % hex hex   
  1020.                          
  1021.   hex                     digit | a | b | c | d | e | f | A | B | C |
  1022.                          D | E | F   
  1023.                          
  1024.   national                { | } | vline | [ | ] | \ | ^ | ~   
  1025.                          
  1026.   punctuation             < | > 
  1027.                          
  1028.   void                   
  1029.                          
  1030. BNF for specific URL schemes
  1031.  
  1032.    This is a BNF-like description of the Uniform Resource Locator
  1033.    syntax. A vertical  line "|"  indicates alternatives, and
  1034.    [brackets]  indicate optional parts.  Spaces are represented by the
  1035.    word "space", and the vertical line character by "vline".   Single
  1036.    letters stand for single letters. All words of more than one letter
  1037.    below are entities described somewhere in this description.  
  1038.    
  1039.    The current IETF URI working group preference  is for the
  1040.  
  1041.  
  1042.  
  1043. Berners-Lee                                                          18
  1044.  
  1045.    prefixedurl production. (Nov 1993. July 93: url).
  1046.    
  1047.    The "generic" production gives a higher level parsing of the same
  1048.    URLs as the other productions.  The "national" and "punctuation"
  1049.    characters do not appear in any productions and therefore may not
  1050.    appear in URLs.
  1051.    
  1052.    The "afsaddress" is left in as historical note, but is not a url
  1053.    production 
  1054.    
  1055.   prefixedurl             u r l : url 
  1056.                          
  1057.   fragmentaddress         uri [ # fragmentid ]   
  1058.                          
  1059.   uri                     url | generic 
  1060.                          
  1061.   ur l                    generic | httpaddress | ftpaddress |
  1062.                          newsaddress | nntpaddress | prosperoaddress |
  1063.                          telnetaddress  | gopheraddress | waisaddress
  1064.                          | mailtoaddress  | midaddress | cidaddress 
  1065.                          
  1066.   generic                 scheme :  path [ ? search ]   
  1067.                          
  1068.   scheme                  ialpha   
  1069.                          
  1070.   httpaddress             h t t p :   / / hostport [  / path ] [ ?
  1071.                          search ]   
  1072.                          
  1073.   ftpaddress              f t p : / / login / path 
  1074.                          
  1075.   afsaddress              a f s : / / cellname / path   
  1076.                          
  1077.   newsaddress             n e w s : groupart   
  1078.                          
  1079.   nntpaddress             n n t p : group /  digits 
  1080.                          
  1081.   midaddress              m i d  :  addr-spec 
  1082.                          
  1083.   cidaddress              c i d : content-identifier 
  1084.                          
  1085.   mailtoaddress           m a i l t o : : xalphas @ hostname 
  1086.                          
  1087.   waisaddress             waisindex | waisdoc  
  1088.                          
  1089.   waisindex               w a i s : / / hostport / database [ ? search
  1090.                          ]   
  1091.                          
  1092.   waisdoc                 w a i s : / / hostport / database / wtype  /
  1093.                          path 
  1094.                          
  1095.   groupart                * | group | article   
  1096.                          
  1097.   group                   ialpha [ . group ]   
  1098.  
  1099.  
  1100.  
  1101. Berners-Lee                                                          19
  1102.  
  1103.   article                 xalphas @ host   
  1104.                          
  1105.   database                xalphas   
  1106.                          
  1107.   wtype                   xalphas   
  1108.                          
  1109.   prosperoaddress         prosperolink   
  1110.                          
  1111.   prosperolink            p r o s p e r o : / / hostport / hsoname [ %
  1112.                           0 0 version [ attributes ] ]   
  1113.                          
  1114.   hsoname                 path   
  1115.                          
  1116.   version                 digits   
  1117.                          
  1118.   attributes              attribute [ attributes ]   
  1119.                          
  1120.   attribute               alphanums   
  1121.                          
  1122.   telnetaddress           t e l n e t : / / login 
  1123.                          
  1124.   gopheraddress           g o p h e r : / / hostport [/ gtype  [
  1125.                          selector ] ] [ ? search ]   
  1126.                          
  1127.   login                   [ user [ : password ] @ ] hostport 
  1128.                          
  1129.   hostport                host [ : port ]   
  1130.                          
  1131.   host                    hostname | hostnumber   
  1132.                          
  1133.   cellname                hostname   
  1134.                          
  1135.   hostname                ialpha [  .  hostname ] 
  1136.                          
  1137.   hostnumber              digits . digits . digits . digits 
  1138.                          
  1139.   port                    digits   
  1140.                          
  1141.   selector                path   
  1142.                          
  1143.   path                    void |  segment  [  / path ] 
  1144.                          
  1145.   segment                 xpalphas 
  1146.                          
  1147.   search                  xalphas [ + search ]   
  1148.                          
  1149.   user                    xalphas  
  1150.                          
  1151.   password                xalphas 
  1152.                          
  1153.   fragmentid              xalphas   
  1154.                          
  1155.   gtype                   xalpha   
  1156.  
  1157.  
  1158.  
  1159. Berners-Lee                                                          20
  1160.  
  1161.   xalpha                  alpha | digit | safe | extra | escape   
  1162.                          
  1163.   xalphas                 xalpha [ xalphas ]   
  1164.                          
  1165.   xpalpha                 xalpha | +   
  1166.                          
  1167.   xpalphas                xpalpha [ xpalpha ]   
  1168.                          
  1169.   ialpha                  alpha [ xalphas ] 
  1170.                          
  1171.   alpha                   a | b | c | d | e | f | g | h | i | j | k |
  1172.                          l | m | n | o  | p | q | r | s | t | u | v |
  1173.                          w | x | y | z | A | B | C  | D | E | F | G |
  1174.                          H | I | J | K | L | M | N | O | P |  Q | R |
  1175.                          S | T | U | V | W | X | Y | Z   
  1176.                          
  1177.                           0 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9   
  1178.                          
  1179.   safe                    $ | - | _ | @ | . | &  | + | - 
  1180.                          
  1181.   extra                   ! | * | " |  ' | ( | ) | : | ; | , | space  
  1182.                          
  1183.   escape                  % hex hex   
  1184.                          
  1185.   hex                     digit | a | b | c | d | e | f | A | B | C |
  1186.                          D | E | F   
  1187.                          
  1188.   national                { | } | vline | [ | ] | \ | ^ | ~   
  1189.                          
  1190.   punctuation             < | > 
  1191.                          
  1192.   digits                  digit [ digits ]   
  1193.                          
  1194.   alphanum                alpha | digit   
  1195.                          
  1196.   alphanums               alphanum [ alphanums ] 
  1197.                          
  1198.   void                   
  1199.                          
  1200.    (end of URL BNF)      
  1201.    
  1202.                               REFERENCES
  1203.                                    
  1204.   Alberti, R., et.al.  (1991) 
  1205.                           "Notes on the Internet Gopher  Protocol"
  1206.                          University of Minnesota, December 1991, 
  1207.                          <ftp://boombox.micro.umn.edu/pub/gopher/
  1208.                          gopher_protocol> . See also 
  1209.                          <gopher://gopher.micro.umn.edu/00/Information
  1210.                          About Gopher/About Gopher> 
  1211.                          
  1212.   Berners-Lee, T ., (1991) 
  1213.                           "Hypertext Transfer Protocol (HTTP)" , CERN,
  1214.  
  1215.  
  1216.  
  1217. Berners-Lee                                                          21
  1218.  
  1219.                          December 1991, as updated from time to time, 
  1220.                          <ftp://info.cern.ch/pub/www/doc/http-spec.txt
  1221.                          > 
  1222.                          
  1223.   Crocker                "Standard for ARPA Internet Text Messages" .
  1224.                          David H. Crocker, RFC822,  
  1225.                          
  1226.   Davis, F, et  al., (1990) 
  1227.                           "WAIS Interface Protocol: Prototype 
  1228.                          Functional Specification", Thinking Machines
  1229.                          Corporation,  April 23, 1990 
  1230.                          <ftp://quake.think.com/pub/wa
  1231.                          is/doc/protspec.txt> 
  1232.                          
  1233.   International Standards Organization, (1991) 
  1234.                           Information and  Documentation - Search and
  1235.                          Retrieve Application Protocol  Specification
  1236.                          for open Systems Interconnection, ISO-10163 
  1237.                          
  1238.   Huitema, C., (1991)     "Naming: strategies and techniques", 
  1239.                          Computer Networks and ISDN Systems 23 (1991)
  1240.                          107-110. 
  1241.                          
  1242.   Kahle, Brewster, (1991)  
  1243.                          "Document Identifiers,  or  International
  1244.                          Standard Book Numbers for the Electronic
  1245.                          Age",
  1246.                          <ftp:
  1247.                          //quake.think.com/pub/wais/doc/doc-ids.txt> 
  1248.                          
  1249.   Kantor, B., and Lapsley, P., (1986) 
  1250.                          "A proposed standard for  the stream-based
  1251.                          transmission of news" , Internet RFC-977,
  1252.                          February 1986.
  1253.                          <ftp://ds.internic.net/rfc/rfc977.txt> 
  1254.                          
  1255.   Lynch, C., Coallition for Networked Information: (1991)   
  1256.                          "Workshop on ID and Reference Structures for
  1257.                          Networked Information", November 1991. See
  1258.                          <wais://quake.think.com/wais-discussion-ar
  1259.                          chives?lynch> 
  1260.                          
  1261.   Mockapetris, P., (1987) 
  1262.                           "Domain names + concepts and  facilities",
  1263.                          RFC-1034, USC-ISI, November 1987, 
  1264.                          <ftp://ds.internic.net/rfc/rfc1034.txt> 
  1265.                          
  1266.   Neuman, B. Clifford, (1992) 
  1267.                           "Prospero: A Tool for Organizing  Internet
  1268.                          Resources", Electronic Networking: Research,
  1269.                          Applications and Policy, Vol 1 No 2, Meckler
  1270.                          Westport CT  USA.  See also 
  1271.                          <ftp://prospero.isi.edu/pub/prospero/oir.ps> 
  1272.  
  1273.  
  1274.  
  1275. Berners-Lee                                                          22
  1276.  
  1277.   Postel, J. and Reynolds, J. (1985) 
  1278.                          "File Transfer Protocol  (FTP)", Internet
  1279.                          RFC-959, October 1985.
  1280.                          <ftp://ds.internic.net/rfc/rfc959.txt> 
  1281.                          
  1282.   Yeong, W., (1991a)      "Towards Networked Information Retrieval", 
  1283.                          Technical report 91-06-25-01, June 1991,
  1284.                          Performance Systems International, Inc. 
  1285.                          <ftp://uu.psi.com/wp/nir.txt> 
  1286.                          
  1287.   Yeong, W., (1991b),     "Representing Public Archives in the 
  1288.                          Directory", Internet Draft, November 1991,
  1289.                          now expired. 
  1290.                          
  1291.    .
  1292.    
  1293.                           AUTHOR'S ADDRESS  
  1294.                                    
  1295. Tim Berners-Lee  
  1296.  
  1297. Address:   World-Wide Web project  
  1298.  
  1299. CERN,
  1300.  
  1301. 1211 Geneva 23,
  1302.  
  1303. Switzerland
  1304.  
  1305.  
  1306. Telephone: +41 (22)767 3755
  1307.  
  1308. Fax:       +41 (22)767 7155 
  1309.  
  1310. Email:     timbl@info.cern.ch
  1311.  
  1312.    
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334. Berners-Lee                                                          23
  1335.  
  1336.